package com.zs.demo.service.system;

import com.baomidou.mybatisplus.plugins.Page;
import com.zs.demo.pojo.dto.system.role.FindRoleDTO;
import com.zs.demo.pojo.dto.system.role.RoleAddDTO;
import com.zs.demo.pojo.dto.system.role.RoleUpdateDTO;
import com.zs.demo.pojo.entity.system.SysRole;
import com.baomidou.mybatisplus.service.IService;

import java.util.List;

public interface SysRoleService extends IService<SysRole> {

    /* @Desc:获取指定ID用户的所有角色
     * @author:zhengs
     * @Time: 2018/11/20 13:23
     * @param uid
     * @param hasResource
     * @return
     */
    List<SysRole> findAllRoleByUserId(String uid,Boolean hasResource);

    /* @Desc:更新缓存
     * @author:zhengs
     * @Time: 2018/11/20 13:23
     * @param role 角色
     * @param author 是否清空授权信息
     * @param out 是否清空session
     * @return
     */
    void updateCache(SysRole role,Boolean author, Boolean out);
    
    /* @Desc:获取角色列表
     * @author:zhengs  
     * @Time: 2018/11/20 13:20
     * @param findRoleDTO
     * @return
     */
    public Page<SysRole> list(FindRoleDTO findRoleDTO);

    /* @Desc:添加角色
     * @author:zhengs
     * @Time: 2018/11/20 13:21
     * @param addDTO
     * @return
     */
    public void add(RoleAddDTO addDTO);

    /* @Desc: 更新角色
     * @author:zhengs
     * @Time: 2018/11/20 13:22
     * @param rid
     * @param roleUpdateDTO
     * @return
     */
    public void update(String rid, RoleUpdateDTO roleUpdateDTO);

    /* @Desc: 删除角色
     * @author:zhengs
     * @Time: 2018/11/20 13:22
     * @param rid
     * @return
     */
    public void remove(String rid);
}
